package com.zlc.platform.service;

import com.zlc.common.common.entity.PageVo;
import com.zlc.common.core.sys.model.vo.MayanSysNotificationVo;
import com.zlc.common.model.sys.NotificationRequest;
import reactor.core.publisher.Flux;

import java.util.List;

public interface SysNotificationService {

    /**
     * 查询最早一次未读消息
     */
    Flux<String> findNoShowSse();

    /**
     * 查询当前用户通知列表 最近20条
     */
    List<MayanSysNotificationVo> findList();

    /**
     * 查询所有未读数量
     */
    Integer findNoReadCount();

    /**
     * 查询所有未读数量 sse
     */
    Flux<String> findNoReadCountSse();

    /**
     * 分页查询用户通知列表
     */
    PageVo<MayanSysNotificationVo> findPage(NotificationRequest request);

    /**
     * 批量已读
     */
    void  read(List<String> ids);

    /**
     * 全部已读
     */
    void readAll();

    /**
     * 批量删除消息
     */
    void delete(List<String> ids);
}
